#ifndef DECODEVIDEO_H
#define DECODEVIDEO_H

#include<QDebug>
#include<QImage>
#include<QString>
#include <QThread>

extern "C"  //表明引用C语言的库
{
//    #include “libavcodec/avcodec.h"
    #include "libavcodec/avcodec.h"          //包含了所有的ffmpeg编码器解压器
    #include "libavdevice/avdevice.h"        //输入输出设备操作
    #include "libavfilter/avfilter.h"       //提供一个机制，各种的过滤（滤镜）处理
    #include "libavformat/avformat.h"       //包含处理多媒体各种不同的格式
    #include "libavutil/avutil.h"           //工具性质的函数--加密解密 数据格式转换等
    #include "libpostproc/postprocess.h"    //多媒体操作多任务处理函数
    #include "libswresample/swresample.h"   //音频操作
    #include "libswscale/swscale.h"         //只针对图像数据   缩放、像素格式转换
}

class DecodeVideo:public QThread
{
    Q_OBJECT
public:
    DecodeVideo();
    void openVideo();
    int getSpeed() const;
    void setSpeed(int value);

    bool getIsRun() const;
    void setIsRun(bool value);

    bool getIsStop() const;
    void setIsStop(bool value);

    QString path;

private:
    QImage img;
    int speed;
    bool isRun;
    bool isStop;

    //记录是否有在录制
    bool isRecord;

    // QThread interface
protected:
    void run();
signals:
    void sendImg(QImage);
};

#endif // DECODEVIDEO_H
